package com.cctc.rds.nrpc.api.client;

import com.cctc.rds.nrpc.api.client.config.RpcClientConfig;
import com.cctc.rds.nrpc.api.exception.RpcIOException;
import com.cctc.rds.nrpc.api.rpc.RpcRequest;
import com.cctc.rds.nrpc.api.rpc.RpcResponse;

public interface RpcClient {
    void start(RpcClientConfig config);

    boolean isReady();

    RpcResponse remoteInvoke(RpcRequest rpcRequest) throws RpcIOException;

    void stop();
}
